home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 4: GNU Archives / Linux Cubed Series 4 - GNU Archives.iso / gnu / binutils.7 / binutils / binutils-2.7 / gas / configure.in < prev    next >
Encoding:
Text File  |  1996-07-04  |  21.1 KB  |  719 lines

  1. dnl Process this file with autoconf to produce a configure script.
  2. dnl
  3. dnl And be careful when changing it!  If you must add tests with square
  4. dnl brackets, be sure changequote invocations surround it.
  5. dnl
  6. dnl
  7. AC_PREREQ(2.5)dnl v2.5 needed for --bindir et al
  8. AC_INIT(as.h)dnl
  9. dnl
  10. user_bfd_gas=
  11. AC_ARG_ENABLE(bfd-assembler,
  12. [  --enable-bfd-assembler  use BFD back end for writing object files],
  13. [case "${enableval}" in
  14.   yes) need_bfd=yes user_bfd_gas=yes ;;
  15.   no)  user_bfd_gas=no ;;
  16.   *)   AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
  17. esac])dnl
  18. AC_ARG_ENABLE(targets,
  19. [    targets            alternative target configurations besides the primary],
  20. [case "${enableval}" in
  21.   yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
  22.         ;;
  23.   no)        enable_targets= ;;
  24.   *)        enable_targets=$enableval ;;
  25. esac])dnl
  26. AC_ARG_ENABLE(shared,
  27. [  --enable-shared         build shared BFD library],
  28. [case "${enableval}" in
  29.   yes) shared=true shared_bfd=true shared_opcodes=true ;;
  30.   no)  shared=false ;;
  31.   *bfd*opcodes*) shared=true shared_bfd=true shared_opcodes=true ;;
  32.   *opcodes*bfd*) shared=true shared_bfd=true shared_opcodes=true ;;
  33.   *bfd*) shared=true shared_bfd=true ;;
  34.   *opcodes*) shared=true shared_opcodes=true ;;
  35.   *) shared=false ;;
  36. esac])dnl
  37.  
  38. # Generate a header file -- gets more post-processing by Makefile later.
  39. AC_CONFIG_HEADER(conf)
  40.  
  41. dnl For recursion to work right, this must be an absolute pathname.
  42. AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
  43. AC_CANONICAL_SYSTEM
  44. AC_ARG_PROGRAM
  45.  
  46. te_file=generic
  47.  
  48. canon_targets=""
  49. if test -n "$enable_targets" ; then
  50.   for t in `echo $enable_targets | sed 's/,/ /g'`; do
  51.     result=`$ac_config_sub $t 2>/dev/null`
  52.     if test -n "$result" ; then
  53.       canon_targets="$canon_targets $result"
  54. #    else
  55. #      # Permit "all", etc.  We don't support it yet though.
  56. #      canon_targets="$canon_targets $t"
  57.     fi
  58.   done
  59.   GAS_UNIQ(canon_targets)
  60. fi
  61.  
  62. emulations=""
  63.  
  64. for this_target in $target $canon_targets ; do
  65.  
  66.     eval `echo $this_target | sed 's/^\(.*\)-\(.*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
  67.  
  68.     # check for architecture variants
  69.     case ${cpu} in
  70.       armeb)        cpu_type=arm endian=big ;;
  71.       arm*)        cpu_type=arm endian=little ;;
  72.       hppa*)        cpu_type=hppa ;;
  73. changequote(,)dnl
  74.       i[456]86)        cpu_type=i386 ;;
  75.       m680[012346]0)    cpu_type=m68k ;;
  76.       m68008)        cpu_type=m68k ;;
  77.       m683??)        cpu_type=m68k ;;
  78. changequote([,])dnl
  79.       m8*)        cpu_type=m88k ;;
  80.       mips*el)        cpu_type=mips endian=little;;
  81.       mips*)        cpu_type=mips endian=big ;;
  82.       powerpcle*)    cpu_type=ppc endian=little ;;
  83.       powerpc*)        cpu_type=ppc endian=big ;;
  84.       rs6000*)        cpu_type=ppc ;;
  85.       sparc64)        cpu_type=sparc want_sparc_v9=true ;;
  86.       sparc*)        cpu_type=sparc ;;
  87.       *)        cpu_type=${cpu} ;;
  88.     esac
  89.  
  90.     if test ${this_target} = $target ; then
  91.       target_cpu_type=${cpu_type}
  92.     elif test ${target_cpu_type} != ${cpu_type} ; then
  93.       continue
  94.     fi
  95.  
  96.     targ=${cpu_type}
  97.     generic_target=${cpu_type}-$vendor-$os
  98.     dev=no
  99.     bfd_gas=no
  100.     em=generic
  101.  
  102.     # assign object format
  103.     case ${generic_target} in
  104.       a29k-*-coff)          fmt=coff targ=ebmon29k ;;
  105.       a29k-amd-udi)         fmt=coff targ=ebmon29k ;;
  106.       a29k-amd-ebmon)       fmt=coff targ=ebmon29k ;;
  107.       a29k-nyu-sym1)        fmt=coff targ=ebmon29k ;;
  108.       a29k-*-vxworks*)      fmt=coff ;;
  109.  
  110.       alpha-*-netware*)     fmt=ecoff ;;
  111.       alpha-*-osf*)         fmt=ecoff ;;
  112.       alpha-*-linuxecoff*)  fmt=ecoff ;;
  113.       alpha-*-linux*)       fmt=elf em=linux ;;
  114.  
  115.  
  116.       arm-*-riscix*)        fmt=aout targ=arm-lit em=riscix ;;
  117.       arm-*-aout)        fmt=aout
  118.                 case "$endian" in
  119.                   big)    targ=arm-big ;;
  120.                   *)    targ=arm-lit ;;
  121.                 esac
  122.                 ;;
  123.       arm-*-coff)           fmt=coff ;;
  124.       arm-*-riscix*)        fmt=aout ;;
  125.       arm-*-pe)             fmt=coff targ=armcoff em=pe ;;
  126.  
  127.       hppa-*-*elf*)         fmt=elf em=hppa ;;
  128.       hppa-*-lites*)        fmt=elf em=hppa ;;
  129.       hppa-*-osf*)          fmt=som em=hppa ;;
  130.       hppa-*-hpux*)         fmt=som em=hppa ;;
  131.       hppa-*-bsd*)          fmt=som em=hppa ;;
  132.       hppa-*-hiux*)         fmt=som em=hppa ;;
  133.  
  134.       h8300-*-coff)         fmt=coff ;;
  135.  
  136.       i386-ibm-aix*)        fmt=coff targ=i386coff
  137.                  em=i386aix ;;
  138.       i386-*-bsd*)          fmt=aout em=386bsd ;;
  139.       i386-*-netbsd0.8)     fmt=aout em=386bsd ;;
  140.       i386-*-netbsd*)       fmt=aout em=nbsd bfd_gas=yes;;
  141.       i386-*-linux*aout* | i386-*-linuxoldld)   fmt=aout em=linux ;;
  142.       i386-*-linux*coff*)   fmt=coff em=linux
  143.                  targ=i386coff ;;
  144.       i386-*-linux*)        fmt=elf em=linux ;;
  145.       i386-*-lynxos*)       fmt=coff targ=i386coff
  146.                  em=lynx ;;
  147.       i386-*-sysv4* | i386-*-solaris* | i386-*-elf | i386-*-freebsdelf*)
  148.                 fmt=elf ;;
  149.       i386-*-sco*elf*)      fmt=elf targ=sco5 ;;
  150.       i386-*-coff | i386-*-sysv* | i386-*-sco* | i386-*-isc*)
  151.                 fmt=coff targ=i386coff ;;
  152.       i386-*-vsta)          fmt=aout ;;
  153.       i386-*-go32)          fmt=coff targ=i386coff ;;
  154.       i386-*-rtems*)        fmt=coff targ=i386coff ;;
  155.       i386-*-gnu*)          fmt=elf ;;
  156.       i386-*-mach*)
  157.                 fmt=aout em=mach bfd_gas=yes ;;
  158.       i386-*-msdos*)        fmt=aout ;;
  159.       i386-*-moss*)        fmt=elf ;;
  160.       i386-*-pe)            fmt=coff targ=i386coff em=pe ;;
  161.       i386-*-cygwin32)      fmt=coff targ=i386coff em=pe ;;
  162.       i386-*-*nt)           fmt=coff targ=i386coff em=pe ;;
  163.       i960-*-bout)          fmt=bout ;;
  164.       i960-*-coff)          fmt=coff em=ic960 targ=ic960coff ;;
  165.       i960-*-rtems*)        fmt=coff em=ic960 targ=ic960coff ;;
  166.       i960-*-nindy*)        fmt=bout ;;
  167.       i960-*-vxworks4*)     fmt=bout ;;
  168.       i960-*-vxworks5.0)    fmt=bout ;;
  169.       i960-*-vxworks5.*)    fmt=coff em=ic960 targ=ic960coff ;;
  170.       i960-*-vxworks*)      fmt=bout ;;
  171.  
  172.       m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
  173.                 fmt=aout em=sun3 ;;
  174.       m68k-motorola-sysv*)  fmt=coff targ=m68kcoff em=delta ;;
  175.       m68k-bull-sysv3*)     fmt=coff targ=m68kcoff em=dpx2 ;;
  176.       m68k-apollo-*)        fmt=coff targ=apollo em=apollo ;;
  177.       m68k-*-sysv4 | m68k-*-elf) # must be before -sysv*
  178.                 fmt=elf ;;
  179.       m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
  180.                 fmt=coff targ=m68kcoff ;;
  181.       m68k-*-hpux*)         fmt=hp300 em=hp300 ;;
  182.       m68k-*-linux*aout*)   fmt=aout em=linux ;;
  183.       m68k-*-linux*)        fmt=elf em=linux ;;
  184.       m68k-*-lynxos*)       fmt=coff targ=m68kcoff
  185.                  em=lynx ;;
  186.       m68k-*-netbsd*)       fmt=aout em=nbsd bfd_gas=yes ;;
  187.       m68k-apple-aux*)      fmt=coff targ=m68kcoff em=aux ;;
  188.       m68k-*-psos*)         fmt=elf em=psos;;
  189.  
  190.       m88k-motorola-sysv3*) fmt=coff targ=m88kcoff em=delt88 ;;
  191.       m88k-*-coff*)         fmt=coff targ=m88kcoff ;;
  192.  
  193.       # don't change em like *-*-bsd does
  194.       mips-dec-netbsd*)        fmt=elf targ=mips-lit endian=little ;;
  195.       mips-dec-bsd*)        fmt=aout targ=mips-lit ;;
  196.       mips-sony-bsd*)       fmt=ecoff targ=mips-big ;;
  197.       mips-*-bsd*)          AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
  198.       mips-*-ultrix*)       fmt=ecoff targ=mips-lit endian=little ;;
  199.       mips-*-osf*)          fmt=ecoff targ=mips-lit endian=little ;;
  200.       mips-*-ecoff*)        fmt=ecoff 
  201.                 case "$endian" in
  202.                 big) targ=mips-big ;;
  203.                 *)   targ=mips-lit ;;
  204.                 esac
  205.                 ;;
  206.       mips-*-ecoff*)        fmt=ecoff targ=mips-big ;;
  207.       mips-*-gnu*)          fmt=aout
  208.                 case "$endian" in
  209.                 big) targ=mips-big ;;
  210.                 *)   targ=mips-lit ;;
  211.                 esac
  212.                 ;;
  213.       mips-*-irix5*)        fmt=elf targ=mips-big ;;
  214.       mips-*-irix*)         fmt=ecoff targ=mips-big ;;
  215.       mips-*-riscos*)       fmt=ecoff targ=mips-big ;;
  216.       mips-*-sysv*)         fmt=ecoff targ=mips-big ;;
  217.       mips-*-elf*)          fmt=elf 
  218.                 case "$endian" in
  219.                 big) targ=mips-big ;;
  220.                 *)   targ=mips-lit ;;
  221.                 esac
  222.                 ;;
  223.       ppc-*-pe | ppc-*-cygwin32 | ppc-*-winnt*)
  224.                     fmt=coff em=pe 
  225.                 case "$endian" in
  226.                 big) targ=ppc-big ;;
  227.                 *)   targ=ppc-lit ;;
  228.                 esac
  229.                             ;;
  230.       ppc-*-aix*)           fmt=coff ;;
  231.       ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
  232.                 fmt=elf
  233.                 case "$endian" in
  234.                 big)  targ=ppc-big ;;
  235.                 *)    targ=ppc-lit ;;
  236.                 esac
  237.                 ;;
  238.       ppc-*-linux*)        fmt=elf
  239.                 case "$endian" in
  240.                 big)  targ=ppc-big ;;
  241.                 *)    AC_MSG_ERROR(Linux must be configured big endian) ;;
  242.                 esac
  243.                 ;;
  244.       ppc-*-solaris*)        fmt=elf
  245.                 case "$endian" in
  246.                 big)  AC_MSG_ERROR(Solaris must be configured little endian) ;;
  247.                 *)    targ=ppc-sol ;;
  248.                 esac
  249.                 ;;
  250.       ppc-*-rtems*)
  251.                 fmt=elf
  252.                 case "$endian" in
  253.                 big)  targ=ppc-big ;;
  254.                 *)    targ=ppc-lit ;;
  255.                 esac
  256.                 ;;
  257.       ppc-*-macos* | ppc-*-mpw*)
  258.                 fmt=coff em=macos ;;
  259.       ppc-*-netware*)       fmt=elf em=ppcnw ;;
  260.  
  261.       sh-*-coff)            fmt=coff ;;
  262.  
  263.       ns32k-pc532-mach* | ns32k-pc532-ux*)    fmt=aout em=pc532mach ;;
  264.       ns32k-pc532-netbsd* | ns32k-pc532-lites*)  fmt=aout em=nbsd532 ;;
  265.  
  266.       sparc-*-rtems*)       fmt=aout ;;
  267.       sparc-*-sunos4*)      fmt=aout em=sun3 ;;
  268.       sparc-*-aout | sparc*-*-vxworks*)
  269.                 fmt=aout ;;
  270.       sparc-*-coff)         fmt=coff ;;
  271.       sparc-*-lynxos*)      fmt=coff em=lynx ;;
  272.       sparc-fujitsu-none)   fmt=aout ;;
  273.       sparc-*-elf | sparc-*-solaris*)
  274.                 fmt=elf ;;
  275.       sparc-*-netbsd*)      fmt=aout em=nbsd bfd_gas=yes ;;
  276.  
  277.       vax-*-bsd* | vax-*-ultrix*)
  278.                 fmt=aout ;;
  279.       vax-*-vms)            fmt=vms ;;
  280.  
  281.       z8k-*-coff | z8k-*-sim)
  282.                 fmt=coff ;;
  283.  
  284.       w65-*-*)              fmt=coff ;;
  285.  
  286.       *-*-aout | *-*-scout)
  287.                 fmt=aout ;;
  288.       *-*-nindy*)
  289.                 fmt=bout ;;
  290.       *-*-bsd*)
  291.                 fmt=aout em=sun3 ;;
  292.       *-*-generic)          fmt=generic ;;
  293.       *-*-xray | *-*-hms)   fmt=coff ;;
  294.       *-*-sim)              fmt=coff ;;
  295.       *-*-elf | *-*-sysv4* | *-*-solaris*)
  296.                 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
  297.                 fmt=elf dev=yes ;;
  298.       *-*-vxworks)          fmt=aout ;;
  299.       *-*-netware)          fmt=elf ;;
  300.     esac
  301.  
  302.     case ${cpu_type}-${fmt} in
  303.       alpha-*)    bfd_gas=yes ;;
  304.       arm-*)    bfd_gas=yes ;;
  305.     # not yet
  306.     # i386-aout)    bfd_gas=preferred ;;
  307.       mips-*)    bfd_gas=yes ;;
  308.       ns32k-*)    bfd_gas=yes ;;
  309.       ppc-*)    bfd_gas=yes ;;
  310.       sparc-*)    bfd_gas=yes ;;
  311.       *-elf)    bfd_gas=yes ;;
  312.       *-ecoff)    bfd_gas=yes ;;
  313.       *-som)    bfd_gas=yes ;;
  314.       *)        ;;
  315.     esac
  316.  
  317. # Other random stuff.
  318.  
  319.     # do we need the opcodes library?
  320.     case ${cpu_type} in
  321.       vax | i386)
  322.     ;;
  323.       *)
  324.     need_opcodes=yes
  325.     if test "${shared_opcodes}" = "true"; then
  326.       # A shared libopcodes must be linked against libbfd.
  327.       need_bfd=yes
  328.     fi
  329.     ;;
  330.     esac
  331.  
  332.     test -n "$want_sparc_v9" && AC_DEFINE(SPARC_V9)
  333.  
  334.     case ${cpu}-${vendor}-${os} in
  335.       sparc64-*-elf*) AC_DEFINE(SPARC_ARCH64) ;;
  336.     esac
  337.  
  338.     case ${cpu_type} in
  339.       m68k)
  340.     case ${extra_objects} in
  341.     *m68k-parse.o*) ;;
  342.     *) extra_objects="$extra_objects m68k-parse.o" ;;
  343.     esac
  344.     ;;
  345.     esac
  346.  
  347. # See if we really can support this configuration with the emulation code.
  348.  
  349.     if test $this_target = $target ; then
  350.       primary_bfd_gas=$bfd_gas
  351.       obj_format=$fmt
  352.       gas_target=$targ
  353.       te_file=$em
  354.  
  355.       if test $bfd_gas = no ; then
  356.     # Can't support other configurations this way.
  357.     break
  358.       fi
  359.     elif test $bfd_gas = no ; then
  360.       # Can't support this configuration.
  361.       break
  362.     fi
  363.  
  364. # From target name and format, produce a list of supported emulations.
  365.  
  366.     case ${generic_target}-${fmt} in
  367.       mips-*-irix5*-*)    emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
  368.       mips-*-*-ecoff)    case "$endian" in
  369.             big)    emulation="mipsbecoff mipslecoff mipsecoff" ;;
  370.             *)    emulation="mipslecoff mipsbecoff mipsecoff" ;;
  371.             esac ;;
  372.       mips-*-*-elf)    case "$endian" in
  373.             big)    emulation="mipsbelf mipslelf mipself" ;;
  374.             *)    emulation="mipslelf mipsbelf mipself" ;;
  375.             esac ;;
  376.     esac
  377.  
  378.     emulations="$emulations $emulation"
  379.  
  380. done
  381.  
  382. # Assign floating point type.  Most processors with FP support
  383. # IEEE FP.  On those that don't support FP at all, usually IEEE
  384. # is emulated.
  385. case ${target_cpu} in
  386.   vax | tahoe )    atof=${target_cpu} ;;
  387.   *)        atof=ieee ;;
  388. esac
  389.  
  390. case "${obj_format}" in
  391.   "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
  392. esac
  393.  
  394. dnl
  395. dnl Make sure the desired support files exist.
  396. dnl
  397.  
  398. if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
  399.   AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
  400. fi
  401.  
  402. if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
  403.   AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
  404. fi
  405.  
  406. # and target makefile frag
  407.  
  408. target_frag=${srcdir}/config/${gas_target}.mt
  409. if test ! -r ${target_frag}; then
  410.   target_frag=/dev/null # ick! but subst_file can't be conditionalized
  411. fi
  412. AC_SUBST_FILE(target_frag)
  413.  
  414. case ${user_bfd_gas}-${primary_bfd_gas} in
  415.   yes-yes | no-no)
  416.     # We didn't override user's choice.
  417.     ;;
  418.   no-yes)
  419.     AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
  420.     ;;
  421.   no-preferred)
  422.     primary_bfd_gas=no
  423.     ;;
  424.   *-preferred)
  425.     primary_bfd_gas=yes
  426.     ;;
  427.   yes-*)
  428.     primary_bfd_gas=yes
  429.     ;;
  430.   -*)
  431.     # User specified nothing.
  432.     ;;
  433. esac
  434.  
  435. # Some COFF configurations want these random other flags set.
  436. case ${obj_format} in
  437.   coff)
  438.     case ${target_cpu_type} in
  439.       i386) AC_DEFINE(I386COFF) ;;
  440.       m68k) AC_DEFINE(M68KCOFF) ;;
  441.       m88k) AC_DEFINE(M88KCOFF) ;;
  442.     esac
  443.     ;;
  444. esac
  445.  
  446. # Getting this done right is going to be a bitch.  Each configuration specified
  447. # with --enable-targets=... should be checked for environment, format, cpu, and
  448. # bfd_gas setting.
  449. #
  450. # For each configuration, the necessary object file support code must be linked
  451. # in.  This might be only one, it might be up to four.  The necessary emulation
  452. # code needs to be provided, too.
  453. #
  454. # And then there's "--enable-targets=all"....
  455. #
  456. # For now, just always do it for MIPS ELF or ECOFF configurations.  Sigh.
  457.  
  458. formats="${obj_format}"
  459. emfiles=""
  460. EMULATIONS=""
  461. GAS_UNIQ(emulations)
  462. for em in . $emulations ; do
  463.   case $em in
  464.     .)    continue ;;
  465.     mipsbelf | mipslelf)
  466.     fmt=elf   file=mipself ;;
  467.     mipsbecoff | mipslecoff)
  468.     fmt=ecoff file=mipsecoff ;;
  469.   esac
  470.   formats="$formats $fmt"
  471.   emfiles="$emfiles e-$file.o"
  472.   EMULATIONS="$EMULATIONS &$em,"
  473. done
  474. GAS_UNIQ(formats)
  475. GAS_UNIQ(emfiles)
  476. if test `set . $formats ; shift ; echo $#` -gt 1 ; then
  477.   for fmt in $formats ; do
  478.     case $fmt in
  479.       aout)    AC_DEFINE(OBJ_MAYBE_AOUT)    ;;
  480.       bout)    AC_DEFINE(OBJ_MAYBE_BOUT)    ;;
  481.       coff)    AC_DEFINE(OBJ_MAYBE_COFF)    ;;
  482.       ecoff)    AC_DEFINE(OBJ_MAYBE_ECOFF)   ;;
  483.       elf)    AC_DEFINE(OBJ_MAYBE_ELF)     ;;
  484.       generic)    AC_DEFINE(OBJ_MAYBE_GENERIC) ;;
  485.       hp300)    AC_DEFINE(OBJ_MAYBE_HP300)   ;;
  486.       ieee)    AC_DEFINE(OBJ_MAYBE_IEEE)    ;;
  487.       som)    AC_DEFINE(OBJ_MAYBE_SOM)     ;;
  488.       vms)    AC_DEFINE(OBJ_MAYBE_VMS)     ;;
  489.     esac
  490.     extra_objects="$extra_objects obj-$fmt.o"
  491.   done
  492.   obj_format=multi
  493. fi
  494. if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
  495.   te_file=multi
  496.   extra_objects="$extra_objects $emfiles"
  497.   DEFAULT_EMULATION=`set . $emulations ; echo $2`
  498.   AC_DEFINE(USE_EMULATIONS)
  499. fi
  500. AC_SUBST(extra_objects)
  501. AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS)
  502. AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION")
  503.  
  504. files="config/tc-${target_cpu_type}.c config/tc-${target_cpu_type}.h \
  505.     config/obj-${obj_format}.h config/obj-${obj_format}.c \
  506.     config/te-${te_file}.h config/atof-${atof}.c \
  507.     $extra_files"
  508. links="targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c \
  509.     $extra_links"
  510.  
  511. case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
  512.   yes-*-coff)    need_bfd=yes ;;
  513.   no-*-coff)    need_bfd=yes
  514.         AC_DEFINE(MANY_SEGMENTS) ;;
  515. esac
  516.  
  517. reject_dev_configs=yes
  518.  
  519. case ${reject_dev_configs}-${dev} in
  520.   yes-yes) # Oops.
  521.     AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
  522.     ;;
  523. esac
  524.  
  525. AC_SUBST(target_cpu_type)
  526. AC_SUBST(obj_format)
  527. AC_SUBST(atof)
  528. dnl AC_SUBST(emulation)
  529.  
  530. AC_LINK_FILES($files, $links)
  531.  
  532. case "${primary_bfd_gas}" in
  533.   yes)    AC_DEFINE(BFD_ASSEMBLER)
  534.     need_bfd=yes ;;
  535. esac
  536.  
  537. # do we need the opcodes library?
  538. case "${need_opcodes}" in
  539. yes)
  540.   OPCODES_DEP=../opcodes/libopcodes.a
  541.   OPCODES_LIB='-L../opcodes -lopcodes'
  542.  
  543.   # We need to handle some special cases for shared libraries.
  544.   case "${host}" in
  545.   *-*-sunos*)
  546.     # On SunOS, we must link against the name we are going to install,
  547.     # not -lbfd, since SunOS does not support SONAME.
  548.     if test "${shared_opcodes}" = "true"; then
  549.       OPCODES_LIB='-L../opcodes -l`echo opcodes | sed '"'"'$(program_transform_name)'"'"'`'
  550.     fi
  551.     ;;
  552.   alpha*-*-osf*)
  553.     # On Alpha OSF/1, the native linker searches all the -L
  554.     # directories for any LIB.so files, and only then searches for any
  555.     # LIB.a files.  That means that if there is an installed
  556.     # libbfd.so, but this build is not done with --enable-shared, the
  557.     # link will wind up being against the install libbfd.so rather
  558.     # than the newly built libbfd.  To avoid this, we must explicitly
  559.     # link against libbfd.a when --enable-shared is not used.
  560.     if test "${shared_opcodes}" != "true"; then
  561.       OPCODES_LIB='../opcodes/libopcodes.a'
  562.     fi
  563.     ;;
  564.   esac
  565.   ;;
  566. esac
  567. AC_SUBST(OPCODES_DEP)
  568. AC_SUBST(OPCODES_LIB)
  569.  
  570. case "${need_bfd}" in
  571. yes)
  572.   BFDDEP=../bfd/libbfd.a
  573.   BFDLIB='-L../bfd -lbfd'
  574.   ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
  575.  
  576.   # We need to handle some special cases for shared libraries
  577.   case "${host}" in
  578.   *-*-sunos*)
  579.     # On SunOS, we must link against the name we are going to install,
  580.     # not -lbfd, since SunOS does not support SONAME.
  581.     if test "${shared_bfd}" = "true"; then
  582.       BFDLIB='-L../bfd -l`echo bfd | sed '"'"'$(program_transform_name)'"'"'`'
  583.     fi
  584.     ;;
  585.   alpha*-*-osf*)
  586.     # On Alpha OSF/1, the native linker searches all the -L
  587.     # directories for any LIB.so files, and only then searches for any
  588.     # LIB.a files.  That means that if there is an installed
  589.     # libbfd.so, but this build is not done with --enable-shared, the
  590.     # link will wind up being against the install libbfd.so rather
  591.     # than the newly built libbfd.  To avoid this, we must explicitly
  592.     # link against libbfd.a when --enable-shared is not used.
  593.     if test "${shared_bfd}" != "true"; then
  594.       BFDLIB='../bfd/libbfd.a'
  595.     fi
  596.     ;;
  597.   esac
  598.   ;;
  599. esac
  600. AC_SUBST(BFDDEP)
  601. AC_SUBST(BFDLIB)
  602. AC_SUBST(ALL_OBJ_DEPS)
  603.  
  604. AC_DEFINE_UNQUOTED(TARGET_ALIAS,    "${target_alias}")
  605. AC_DEFINE_UNQUOTED(TARGET_CANONICAL,    "${target}")
  606. AC_DEFINE_UNQUOTED(TARGET_CPU,        "${target_cpu}")
  607. AC_DEFINE_UNQUOTED(TARGET_VENDOR,    "${target_vendor}")
  608. AC_DEFINE_UNQUOTED(TARGET_OS,        "${target_os}")
  609.  
  610. AC_PROG_CC
  611. AC_PROG_INSTALL
  612.  
  613. AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
  614.  
  615. # Put this here so that autoconf's "cross-compiling" message doesn't confuse
  616. # people who are not cross-compiling but are compiling cross-assemblers.
  617. AC_MSG_CHECKING(whether compiling a cross-assembler)
  618. if test "${host}" = "${target}"; then
  619.   cross_gas=no
  620. else
  621.   cross_gas=yes
  622.   AC_DEFINE(CROSS_COMPILE)
  623. fi
  624. AC_MSG_RESULT($cross_gas)
  625.  
  626. dnl ansidecl.h will deal with const
  627. dnl AC_CONST
  628. AC_FUNC_ALLOCA
  629. AC_C_INLINE
  630.  
  631. # VMS doesn't have unlink.
  632. AC_CHECK_FUNCS(unlink remove, break)
  633.  
  634. # Some systems don't have sbrk().
  635. AC_CHECK_FUNCS(sbrk)
  636.  
  637. # Some non-ANSI preprocessors botch requoting inside strings.  That's bad
  638. # enough, but on some of those systems, the assert macro relies on requoting
  639. # working properly!
  640. GAS_WORKING_ASSERT
  641.  
  642. # On some systems, the system header files may not declare malloc, realloc,
  643. # and free.  There are places where gas needs these functions to have been
  644. # declared -- such as when taking their addresses.
  645. gas_test_headers="
  646. #ifdef HAVE_MEMORY_H
  647. #include <memory.h>
  648. #endif
  649. #ifdef HAVE_STRING_H
  650. #include <string.h>
  651. #endif
  652. #ifdef HAVE_STDLIB_H
  653. #include <stdlib.h>
  654. #endif
  655. #ifdef HAVE_UNISTD_H
  656. #include <unistd.h>
  657. #endif
  658. "
  659. GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
  660. GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
  661.  
  662. # Does errno.h declare errno, or do we have to add a separate declaration
  663. # for it?
  664. GAS_CHECK_DECL_NEEDED(errno, f, int f, [
  665. #ifdef HAVE_ERRNO_H
  666. #include <errno.h>
  667. #endif
  668. ])
  669.  
  670. HLDFLAGS=
  671. RPATH_ENVVAR=LD_LIBRARY_PATH
  672. # If we have shared libraries, try to set rpath reasonably.
  673. if test "${shared}" = "true"; then
  674.   case "${host}" in
  675.   *-*-hpux*)
  676.     HLDFLAGS='-Wl,+s,+b,$(libdir)'
  677.     RPATH_ENVVAR=SHLIB_PATH
  678.     ;;
  679.   *-*-irix5*)
  680.     HLDFLAGS='-Wl,-rpath,$(libdir)'
  681.     ;;
  682.   *-*-linux*aout*)
  683.     ;;
  684.   *-*-linux*)
  685.     HLDFLAGS='-Wl,-rpath,$(libdir)'
  686.     ;;
  687.   *-*-sysv4* | *-*-solaris*)
  688.     HLDFLAGS='-R $(libdir)'
  689.     ;;
  690.   esac
  691. fi
  692.  
  693. # On SunOS, if the linker supports the -rpath option, use it to
  694. # prevent ../bfd and ../opcodes from being included in the run time
  695. # search path.
  696. case "${host}" in
  697.   *-*-sunos*)
  698.     echo 'main () { }' > conftest.c
  699.     ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
  700.     if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
  701.       :
  702.     elif grep 'No such file' conftest.t >/dev/null 2>&1; then
  703.       :
  704.     elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
  705.       :
  706.     elif test "${shared}" = "true"; then
  707.       HLDFLAGS='-Wl,-rpath=$(libdir)'
  708.     else
  709.       HLDFLAGS='-Wl,-rpath='
  710.     fi
  711.     rm -f conftest.t conftest.c conftest
  712.     ;;
  713. esac
  714. AC_SUBST(HLDFLAGS)
  715. AC_SUBST(RPATH_ENVVAR)
  716.  
  717. dnl This must come last.
  718. AC_OUTPUT(Makefile doc/Makefile .gdbinit:gdbinit.in)
  719.